package com.gary.streamApi;

import lombok.Data;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

/**
 * @author peng_rui
 * @date 2022/3/9
 */
public class ParallelStreamTest {
//    public static void main(String[] args) {
//        ArrayList<Integer> integers = new ArrayList<>();
//        for (int i = 0; i < 10; i++) {
//            integers.add(i);
//        }
//        ArrayList<Integer> addList = new ArrayList<>();
//        integers.parallelStream().forEach(integer -> {
//            Thread thread = Thread.currentThread();
//            try {
//                TimeUnit.SECONDS.sleep(3);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//            System.out.println(thread.getName() + " -线程打印 -->> " +integer);
//            if (integer % 2 == 0) {
//                addList.add(integer);
//            }
//        });
//        System.out.println();
//        System.out.println(Thread.currentThread().getName() + "--1--------");
//        integers.parallelStream().forEach(integer -> {
//            Thread thread = Thread.currentThread();
//            System.out.println(thread.getName() + " -线程打印 -->> " +integer);
//            if (integer % 2 == 0) {
//                addList.add(integer);
//            }
//        });
//        System.out.println();
//        System.out.println(Thread.currentThread().getName() + "--2--------");
//        addList.forEach(integer -> {
//            System.out.print(integer + " ");
//        });
//    }

    public static void main(String[] args) {
        ArrayList<App> integers = new ArrayList<>();
        for (int i = 0; i < 3; i++) {
            if (i==2) {
                integers.add(null);
                break;
            }
            App app = new App();
            app.setId((long) i);
            app.setName("name" + i);
            integers.add(app);
        }
        Set<String> names = integers.stream().map(App::getName).collect(Collectors.toSet());
        System.out.println(names);
    }

    @Data
    static class App {
        private Long id;
        private String name;
    }
}
